#pragma once
#include <cinatra.hpp>
#include <iostream>
#include "base_controller.hpp"

using namespace std;
using namespace cinatra;


namespace bz
{
	class device;
	class device_controller :public base_controller
	{
	public:
		device_controller();
		~device_controller();

		async_simple::coro::Lazy<void> index(coro_http_request& req, coro_http_response& res);
		async_simple::coro::Lazy<void> all_list(coro_http_request& req, coro_http_response& res);
		async_simple::coro::Lazy<void> add(coro_http_request& req, coro_http_response& res);
		async_simple::coro::Lazy<void> remove(coro_http_request& req, coro_http_response& res);
		async_simple::coro::Lazy<void> update(coro_http_request& req, coro_http_response& res);
		async_simple::coro::Lazy<void> type_list(coro_http_request& req, coro_http_response& res);
		async_simple::coro::Lazy<void> batch_remove(coro_http_request& req, coro_http_response& res);

		

	private:

		bool is_allow_add_update(string &name,string &ip,int id);
		device* model_;
	};

	
}